package com.opmsys.service;

import com.opmsys.pojo.dto.*;
import com.opmsys.pojo.vo.PersonInfo;
import com.opmsys.pojo.entity.Person;

import java.util.List;

public interface PersonService {

    /**
     * 新增员工
     * @param person
     * @return
     */
    public Boolean add(Person person);

    /**
     * 登录时查询账户和密码
     * @param loginInfo
     * @return
     */
    public Person selectPersonByNumAndPassword(LoginInfo loginInfo);

    /**
     * 根据账号查询是否存在
     * @param number
     * @return
     */
    public int selectPersonByNum(Long number);

    /**
     * 更改员工信息
     * @param person
     * @return
     */
    public Boolean change(Person person);

    /**
     * 管理员更改用户密码
     * @param passwordAbout
     * @return
     */
    public Boolean changePasswordByAdmin(PasswordAbout passwordAbout);

    /**
     * 用户自行更改密码
     * @param passwordAbout
     * @return
     */
    public Boolean changePasswordByUser(PasswordAbout passwordAbout);

    /**
     * 模糊查询
     * @param fuzzySearchAbout
     * @return
     */
    public List<PersonInfo> selectPersonListByFuzzyKeyWord(FuzzySearchAbout fuzzySearchAbout);

    /**
     * 员工模糊查询并分页
     * @param pagingSearchAbout
     * @return
     */
    public List<PersonInfo> pagingSelectPersonListByFuzzyKeyWord(PagingSearchAboutPerson pagingSearchAbout);

    /**
     * 根据id查询单个员工账户信息
     * @param id
     * @return
     */
    Person selectById(Integer id);

    /**
     * 根据模糊查询条件，查询总信息数
     * @param pagingSearchAboutPerson
     * @return
     */
    int pageTotal(PagingSearchAboutPerson pagingSearchAboutPerson);
}
